如果有任何問題或建議,歡迎隨時聯繫我:
在第八天,我們將探討 ES6 中為 Number
和 Object
添加的新方法,這些方法在提高數據處理的效率和方便性。
在本篇因為 Number、Object 涵蓋很多種方法所以今天會注重在面對某些狀況該如何處理的教學。
function areNumbersClose(a, b, epsilon = Number.EPSILON) {
return Math.abs(a - b) < epsilon;
}
console.log(areNumbersClose(0.1 + 0.2, 0.3)); // true
console.log(Number.isInteger(42)); // true
console.log(Number.isInteger(42.3)); // false
JavaScript 中的 Number 是基於 IEEE 754 標準的雙精度 64 位二進制格式。當處理超出這個範圍的數字時,可以使用 BigInt:
const hugeNumber = BigInt(2**53) + 1n;
console.log(hugeNumber); // 9007199254740993n
const obj = { a: { b: 1 } };
const shallowCopy = Object.assign({}, obj);
const deepCopy = JSON.parse(JSON.stringify(obj));
obj.a.b = 2;
console.log(shallowCopy.a.b); // 2
console.log(deepCopy.a.b); // 1
const dynamicKey = 'color';
const car = {
[dynamicKey]: 'blue',
model: 'Ford'
};
console.log(car.color); // blue
Object.defineProperty(car, 'year', {
value: 2020,
writable: false,
enumerable: true
});
car.year = 2021; // 不會改變
console.log(car.year); // 2020
const privateProperty = Symbol('private');
const myObject = {
[privateProperty]: 'Secret',
publicProperty: 'Visible'
};
console.log(myObject[privateProperty]); // 'Secret'
何謂自我挑戰,問題不怕困難,重點是要解決出問題的人(誤,嘗試開始! 在這裡你可以看到大家是怎麼回答題目的,甚至會看到暗藏的高手可以將簡單的題目回答的淋漓盡致!
回答我都會放在隔天的 GitHub Day9 JS 上哦!
第八天介紹了 Number 和 Object 的幾個重要新方法,這些工具有助於處理數字和對象,並提供了比之前版本更安全、更便捷的操作方式。這些方法使得數據操作更為直觀,減少了錯誤的發生率並優化了代碼的可讀性。本身實戰的心得認為今天內容都很實用哦!
我們將在下一篇探討 ES6 中的 Math 新方法,敬請期待!